#ifndef EXAM_H
#define EXAM_H

using namespace std;


struct TreeNode
{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};

class Exam
{
public:
public:
    bool isBalanced(TreeNode* root) {
        if(root == nullptr){
            return false;
        }
        int d1 = depth(root->left);

        int d2 = depth(root->right);
        if(abs(d1-d2)>=1)
            return false;
        return true;
    }

    int depth(TreeNode* root){
        if(root == nullptr){
            return 0;
        }
        int left = depth(root->left);
        int right = depth(root->right);
        return left > right?left+1 : right+1;
    }



/*
//    bool isBalanced(TreeNode* root) {
//        if(root == nullptr)
//            return true;
//        int d = deep(root->left);
//        int d2 = deep(root->right);
//        if(abs(d - d2)>=1)
//            return false;
//        return true;
//    }

//    int deep(TreeNode* root){
//        if(root == nullptr){
//            return 0;
//        }
//        int left = deep(root->left);
//        int right = deep(root->right);

//        return left > right?left+1:right+1;

//    }
*/
};

#endif // EXAM_H
